package com.xzc.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * @author 徐州城
 * @version 1.0
 */
public class HelloServlet implements Servlet {

    public HelloServlet() {
        System.out.println("1 构造器方法");
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2 init初始化");

        //1、ServletConfig类从类名上来看，就知道是Servlet程序的配置信息类。
        System.out.println("HelloServlet程序的别名是：" + servletConfig.getServletName());
        //2、Servlet程序和ServletConfig 对象都是由Tomcat负责创建，我们负责使用。Servlet程序默认是第一次访问的时候
        // 3、创建，ServletConfig是每个Servlet程序创建时，就创建一个对应的ServletConfig对象。
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * Server方法是专门用来处理请求和相应的
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3 Servlet == Hello Servlet!!! 被访问了");

        //类型转换 (因为它有getMethod())
        HttpServletRequest httpServletRequest =  (HttpServletRequest) servletRequest;
        //获取请求方式
        String method = httpServletRequest.getMethod();

        if ("GET".equals(method)){
            doGet();
        } else if ("POST".equals(method)) {
            doPost();
        }
    }

    /**
     * 做get请求的操作
     */
    public void doGet(){
        System.out.println("GET请求");
    }

    /**
     * 做post请求的操作
     */
    public void doPost(){
        System.out.println("POST请求");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("4 destroy销毁方法");
    }
}
